<?php


/*
Plugin Name: Modulo de pagamento para Wordpress utilizando o pagseguro
Version: v1.0
Plugin URI: http://www.conexaoparis.com.br
Author: Alexandre Magno
Author URI: http://blog.alexandremagno.net
Description: Plugin de integração do Wordpress com o pagseguro de uma forma amigável, desenvolvido para o blog Conexão Paris
*/
session_start();
function modulo_venda_pagina_opcoes() {
	echo '<div class="wrap"><h2>Opções do Módulo Pagseguro</h2>';

	$email_padrao = get_option('modulo_venda_email_padrao');
    if (empty($email_padrao)) $email_padrao = get_bloginfo('admin_email');

	$cat_padrao_id = get_option('modulo_venda_cat');
    $modulo_cat_dropdown = 'hide_empty=0&name=modulo_venda_cat&class=code';
	if (empty($cat_padrao_id)&&$cat_padrao_id) {
    	$cat_padrao_id = 0;
    } else {
    	$modulo_cat_dropdown .= '&selected='.$cat_padrao_id;
    }

	$cat_padrao_id = get_option('modulo_venda_cat');
    if (empty($cat_padrao_id)) $cat_padrao_id = 0;

    $modulo_preco = get_option('modulo_preco');
    if (empty($modulo_preco)) $modulo_preco = 0;

    echo '<p>Para acessar sua conta do pagseguro, por favor acesse ';
    echo '<a href="http://www.pagseguro.com.br">o site do pagseguro</a></p>';
	echo '<form method="post" action="options.php">';
	//settings_fields('opcoes-modulo-venda'); versao 2.7
	wp_nonce_field('update-options');
    echo '<table class="form-table">';
    echo '<tbody>';
    echo '<tr valign="top">';
    echo '<th scope="row">';
    echo '<label for="modulo_venda_cat">Categoria</label>';
    echo '</th>';
    echo '<td>';
    //exibe as categorias em um select
    wp_dropdown_categories($modulo_cat_dropdown);
    echo '<br/>';
    echo 'Esta é a categoria padrão que você usará para disponibilizar de forma organizada os itens para venda';
    echo '<br />Todos os posts nesta categoria possuiram um carrinho';
    echo '</td>';
    echo '</tr>';
    echo '<tr valign="top">';
    echo '<th scope="row">';
    echo '<label for="modulo_preco">E-mail:</label>';
    echo '</th>';
    echo '<td>';
	echo '<input type="text" class="code" size="40" name="modulo_venda_email_padrao" value="'.$email_padrao.'" />';
    echo '<br/>';
    echo 'E-mail cadastrado no pagseguro';
    echo '</td>';
    echo '</tr>';
    echo '<tr valign="top">';
    echo '<th scope="row">';
    echo '<label for="modulo_preco">Preço:</label>';
    echo '</th>';
    echo '<td>';
	echo '<input type="text" class="code" size="10" name="modulo_preco" value="'.$modulo_preco.'" />';
    echo '<br/>';
    echo 'Valor de cada mercadoria nesta categoria. <em>Ex:</em> 12.00';
    echo '</td>';
    echo '</tr>';
    echo '</tbody>';
    echo '</table>';
    echo '<input type="hidden" name="action" value="update" />'; //remover para versao 2.7
    echo '<input type="hidden" name="page_options" value="modulo_venda_email_padrao,modulo_venda_cat,modulo_preco" />'; //remover versao 2.7
    echo '<p class="submit">';
	echo '<input type="submit" class="button" value="Save Changes" name="Submit"/>';
	echo '</p>';
    echo '</form>';
	echo '</div>';
}

//funcao que adiciona os itens do menu
function modulo_venda_menu() {
	add_options_page('Módulo de venda Pagseguro para Wordpress', 'Modulo de venda Pagseguro para Wordpress', 'manage_options', __FILE__, 'modulo_venda_pagina_opcoes');
}
//registrando opcoes
function modulo_venda_plugin_init(){
	//versao 2.7
	//register_setting('opcoes-modulo-venda', 'modulo_venda_cat');
}
function adicionar_item() {
	$carrinho_id = $_POST['postid'];
	if(!is_array($_SESSION['carrinho'])) $_SESSION['carrinho'] = array();
	if(!array_key_exists($carrinho_id,$_SESSION['carrinho'])) {
		$_SESSION['carrinho'][$carrinho_id]['posttitle'] = $_POST['posttitle'];
		$_SESSION['carrinho'][$carrinho_id]['quantidade'] = $_POST['quantidade'];
		$_SESSION['carrinho'][$carrinho_id]['valor'] = get_option('modulo_preco');
	} else {
		$_SESSION['carrinho'][$carrinho_id]['quantidade'] += $_POST['quantidade'];
	}
}
function apagar_item() {
	$post_id = $_POST['deleteid'];
	unset($_SESSION['carrinho'][$post_id]);
}
function mod_get_total() {
	$qtidade_total = 0;
	foreach($_SESSION['carrinho'] as $key => $item) {
		$qtidade_total += $item['quantidade'];
	}
	$valor_total = $qtidade_total * get_option('modulo_preco');
	return sprintf('%1.2f',$valor_total);
}
function modulo_venda_carrinho_widget($args) {
    extract($args);
    if($_GET['destruir']) {
		session_destroy();
	}
	$add = $_POST['adicionar'];
	$delete = $_POST['apagar'];
	if($add=='Adicionar ao carrinho'){
		adicionar_item();
	}
	if($delete == 'Apagar') {
		apagar_item();
	}
	if($_SESSION['carrinho']) {
	    echo $before_widget;
	    echo '<div id="modulo-total">';
		echo 'Total: '.mod_get_total();
		echo '</div>';
		echo $before_title.'Carrinho'. $after_title;
		echo '<ul class="liiconpage">';
	    foreach($_SESSION['carrinho'] as $key => $item) {
			$total_item = $item['quantidade']*$item['valor'];
	    	echo '<li class="page_item page-item-2">';
	    	echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
	    	echo '<input type="hidden" name="deleteid" value="'.$key.'" />';
		    echo '<a href="'.get_permalink($key).'" title="'.$item['posttitle'].'">'.$item['posttitle'].'</a>';
			echo '<input type="submit" name="apagar" value="Apagar" />';
		    echo '<p>Quantidade: '.$item['quantidade'].' - Valor: R$ '.sprintf('%1.2f',$total_item).'</p>';
			echo '</form>';
			echo '</li>';
	    }
		echo '</ul>';
		echo '<form target="pagseguro" method="post" id="modulo-comprar" action="https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx">';
		echo '<input type="hidden" name="email_cobranca" value="'.get_option('modulo_venda_email_padrao').'" />';
        echo '<input type="hidden" name="tipo" value="CP">';
        echo '<input type="hidden" name="tipo_frete" value="SD">';
        echo '<input type="hidden" name="moeda" value="BRL">';
        $cont = 1;
		foreach($_SESSION['carrinho'] as $key => $item) {
	    	echo '<input type="hidden" name="item_id_'.$cont.'" value="'.$key.'" />';
	    	echo '<input type="hidden" name="item_descr_'.$cont.'" value="'.$item['posttitle'].'" />';
	    	echo '<input type="hidden" name="item_quant_'.$cont.'" value="'.$item['quantidade'].'" />';
	    	echo '<input type="hidden" name="item_valor_'.$cont.'" value="'.str_replace('.','',$item['valor']).'" />';
	    	echo '<input type="hidden" name="item_peso_'.$cont.'" value="'.$item['quantidade']*(40).'" />';
	    	$cont++;
		}
		echo '<input type="submit" value="Comprar" />';
		echo '</form>';
	    echo $after_widget;
    }
}

function modulo_post_compravel($content) {
	global $id;
	$post_cat_id = get_the_category($id);
	if($post_cat_id[0]->term_id==get_option('modulo_venda_cat')){
		$content.= '<p><b>Valor: R$ '.get_option('modulo_preco').'</b>';
		$content.= '<div class="modulo-venda-post">';
		$content.= '<form action="'.$_SERVER['PHP_SELF'].'" method="post" id="modulo-venda-post-form">';
		$content.= '<input type="hidden" name="postid" value="'.$id.'" />';
		$content.= '<input type="hidden" name="posttitle" value="'.get_the_title($id).'" />';
		$content.= '<label id="label-quantidade" for="quantidade">Quantidade: </label><input class="quantidade" type="text" name="quantidade" value="1" />';
		$content.= '<input type="submit" class="botao-post" name="adicionar" value="Adicionar ao carrinho" />';
		$content.= '</form>';
		$content.= '</div>';
	}
 	return $content;
}

function modulo_venda_banner_widget($args) {
    extract($args);
    $plugin_path = get_bloginfo('wpurl').'/'.PLUGINDIR.'/'.'modulo-pagseguro'.'/';
    $cat_id = get_option('modulo_venda_cat');
    echo $before_widget;
    //echo $before_title.'Venda dos guias de Paris'. $after_title;
    echo '<a href="'.get_category_link($cat_id).'">';
    echo '<img src="'.$plugin_path.'banner.gif" />';
    echo '</a>';
    echo $after_widget;
}
function modulo_sidebar_loaded() {
   register_sidebar_widget('Carrinho', 'modulo_venda_carrinho_widget');
   register_sidebar_widget('Banner de venda', 'modulo_venda_banner_widget');
}
function addHeaderCode() {
	echo '<link type="text/css" rel="stylesheet" href="' . get_bloginfo('wpurl').'/'. PLUGINDIR.'/'.'modulo-pagseguro/modulo_venda.css" />';
}
//inicializando o plugin com as opcoes registradas
add_action('admin_init', 'modulo_venda_plugin_init' );

// inserido a pagina de opcoes do plugin
add_action('admin_menu','modulo_venda_menu');

add_action('plugins_loaded','modulo_sidebar_loaded');

// acao para adicionar css
add_action('wp_head', 'addHeaderCode');

// inserir o botao de adicionar ao carrinho nos posts da categoria descrita
add_filter('the_content', 'modulo_post_compravel');
?>